The present invention relates to databases and, more particularly, to the transfer of data between databases.
Databases are structures that are used within computer systems to organize data, generally large amounts of data. For instance, one type of database organizes data into records with each record containing a number of fields. Consequently, this type of database can be conceptualized as a series of rows that are each divided into a series of columns. The rows represent the records in the database, and the columns represent the fields. For example, a credit card company could have such a database that is comprised of records that represent all of its accounts. Each record could include a field for the account number, the name of the account holder, the address of the account holder, the current account balance etc.
In many situations it is desirable to transfer data from one database to another database. The database from which the data is transferred is typically referred to as the source database, and the database to which the data is transferred is typically referred to as the target database. Continuing with the credit card company example, there might be a source database that accumulates records of all of the credit card transactions in a twenty-four hour period. The target database, in contrast, could accumulate all of the transactions for each credit card account within a billing period.
It is common place for the definition of how a source or target database is organized to change, typically as part of an upgrade to the system within which the database is used. The definition of how a database is organized is typically referred to as the schema of the database. To continue with the credit card company example, the target database could originally include all of an account holder""s transactions for a billing period. If the credit card company were to start offering mortgage services to its credit card holders and want to provide the account holders with a consolidated bill that included credit card charges and a mortgage invoice, the target database could be modified to accommodate this possibility. Presently, such a modification requires that the software program that transfers the data be modified to reflect the change to the source or target database.
It is therefore desirable to provide a method for transferring data between source and target databases in a computer system that accommodates changes in the schema of the source and/or target databases. The method is implemented in the form of a computer program that operates to determine the elements of the source database schema, the elements of the target database schema, and the elements that are common to the source and target database schemas, i.e., the intersection of the database schemas. Once the intersection of the source and target database schemas has been determined, the program facilitates the transfer of data in the common elements from the source database to the target database.
The present invention, by determining which elements are common to the source and target databases, provides a number of advantages relative to known methods of transferring data between databases. Namely, because the present invention determines which data is to be transferred, the need to maintain configuration information with details about the data to be transferred between the databases is substantially eliminated. Further, by not having to maintain configuration information on which data is to be transferred, the possibility of having inconsistencies between the configuration information and the schemas of the databases is likewise reduced. Relatedly, the cost of having to maintain the schemas and the configuration information is largely eliminated. A further consequence of determining which data is to be transferred, rather than maintaining this information, is that the program which causes the data to be transferred between the databases does not have to be modified to accommodate most changes in one or both of the schemas of the source and target databases.